package com.ym.soso.domain.entity;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ym.common.constant.BaseEntity;
import com.ym.base.enums.FlagEnum;
import com.ym.soso.enums.BannerShowTypeEnum;
import com.ym.soso.enums.PublishStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import tk.mybatis.mapper.annotation.LogicDelete;

import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * 健康科普对象 app_health_plate
 *
 * @author ym
 * @date 2020-08-24
 */
@ApiModel("健康科普-实体")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "app_health_plate")
public class AppHealthPlateEntity extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 父级标签
	 */
	@ApiModelProperty("父级标签")
	private String parentTag;

	/**
	 * 子标签
	 */
	@ApiModelProperty("子标签")
	private String tag;

	/**
	 * 标题
	 */
	@ApiModelProperty("标题")
	private String title;

	/**
	 * 图片
	 */
	@ApiModelProperty("图片")
	private String bannerImg;

	/**
	 * 作者
	 */
	@ApiModelProperty("作者")
	private String author;

	/**
	 * 简介
	 */
	@ApiModelProperty("简介")
	private String simple;

	/**
	 * 内容
	 */
	@ApiModelProperty("内容")
	private String content;

	@ApiModelProperty("审核状态01未审核02审核通过03审核不通过")
	@NotNull(message = "审核状态01未审核02审核通过03审核不通过不能为空!")
	@Size(max = 2, message = "审核状态01未审核02审核通过03审核不通过长度必须在{min}和{max}之间")
	private String auditStatus;

	/**
	 * 点击显示类型01富文本02跳转链接
	 */
	@ApiModelProperty("点击显示类型01富文本02跳转链接")
	@JsonSerialize(converter = BannerShowTypeEnum.Covert.class)
	private String showType;

	/**
	 * 图片外链 00否01是
	 */
	@ApiModelProperty("图片外链 00否01是")
	@JsonSerialize(converter = FlagEnum.Covert.class)
	private String imgLink;

	/**
	 * 跳转链接
	 */
	@ApiModelProperty("跳转链接")
	private String targetUrl;

	/**
	 * 阅读量
	 */
	@ApiModelProperty("阅读量")
	private Integer readNum;

	/**
	 * 转发量
	 */
	@ApiModelProperty("转发量")
	private Integer forwardNum;

	/**
	 * 状态 00未发布01已发布
	 */
	@ApiModelProperty("状态 00未发布01已发布")
	@JsonSerialize(converter = PublishStatusEnum.Covert.class)
	private String publishStatus;

	/**
	 * 头像
	 */
	@ApiModelProperty("头像")
	private String headUrl;

	/**
	 * 医院名称
	 */
	@ApiModelProperty("医院名称")
	private String hosName;

	/**
	 * 科室名称
	 */
	@ApiModelProperty("科室名称")
	private String deptName;

	/**
	 * 职称名称
	 */
	@ApiModelProperty("职称名称")
	private String jobName;

	/**
	 * 发布人
	 */
	@ApiModelProperty("发布人")
	private Long publisher;

	/**
	 * 发布时间
	 */
	@ApiModelProperty("发布时间")
	private Date publishTime;

	/**
	 * 排序
	 */
	@ApiModelProperty("排序")
	private Integer sortNum;

	/**
	 * 创建人
	 */
	@ApiModelProperty("创建人")
	private Long createPerson;

	/**
	 * 创建时间
	 */
	@ApiModelProperty("创建时间")
	private Date createTime;

	/**
	 * 修改人
	 */
	@ApiModelProperty("修改人")
	private Long uptSb;

	/**
	 * 修改时间
	 */
	@ApiModelProperty("修改时间")
	private Date uptTime;

	/**
	 * 删除标志
	 */
	@ApiModelProperty("删除标志")
	@JsonSerialize(converter = FlagEnum.Covert.class)
	@LogicDelete
	private String deleted;

}
